// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
/*---------------------------------------------
函数说明：获取 当前用户、分享用户 的数据信息
返回格式: {
  result:success/fail, 
  error:'错误说明', 
  more:'', 
  data:{
    current_user_openid:xxxxx,
    current_user_activity_info:xxxx
    share_user_activity_info:xxxx
  }
  }
---------------------------------------------*/

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  // 转发用户的 openid (如果是0，说明不是从转发场景进入)
  let share_user_openid = event.share_user_openid

  // 当前用户的 openid
  let current_user_openid = wxContext.OPENID


  // ******* 获取当前用户的活动参与信息  *******
  let current_user_query = await db.collection('activity_users').where({ openid: current_user_openid }).get()
  //------------- 错误检测-err01：当前用户信息查询是否正常
  if (current_user_query.errMsg != 'collection.get:ok') {
    return { result: 'fail', error: 'err01:网络错误', more: '获取current_user活动信息错误' }
  }
  let current_user_activity_info = false
  if (current_user_query.data.length > 0) {
    // 用户参加过活动 ，找到了活动记录
    current_user_activity_info = current_user_query.data[0]
  }

  // ******* 获取分享用户的活动参与信息  *******
  let share_user_activity_info = false

  if (share_user_openid == 0) {
    // 用户从转发场景进入，share_user_activity_info 还是返回 false
    share_user_activity_info = false
  } else {
    let share_user_query = await db.collection('activity_users').where({ openid: share_user_openid }).get()
    //------------- 错误检测-err02：转发用户信息查询是否正常
    if (share_user_query.errMsg != 'collection.get:ok') {
      return { result: 'fail', error: 'err02:网络错误', more: '获取share_user活动信息错误' }
    }
    // 判断如果是 转发场景：share_user 有没有活动信息
    if (share_user_query.data.length > 0) {
      // 用户参加过活动 ，找到了活动记录
      share_user_activity_info = share_user_query.data[0]
    }
  }

  // ******* 运行至此说明程序无误  *******
  return {
    result: 'success',
    current_user_openid: current_user_openid,
    current_user_activity_info: current_user_activity_info,
    share_user_activity_info: share_user_activity_info,
  }
}